<?php
function f(&$name)
{ //形参的前面加上符号&，表示传引用
    $name .= '丰'; // $name = $name . '丰' // .字符串拼接运算符
}

$n = '张三';
f($n);
echo "$n\n"; //张三丰

$a = ['php' => 90, 'java' => 80, 'js' => 95];
asort($a);
print_r($a); //排序的结果就在数组$a中

//4.2.1.3 默认参数, 有默认值的参数都放在参数列表的右侧
function f2($name, $age = 20)
{
    echo "$name, $age\n";
}

f2('张三'); //张三, 20
f2('李四', 22); //李四, 22
//可变数量的参数列表。由 ... 语法实现
function sum(...$numbers)
{ //多个参数可以是0,1,2,....个参数
    $acc = 0;
    foreach ($numbers as $n) {
        $acc += $n;
    }
    return $acc;
}

echo sum(1, 2, 3, 4), "\n"; //10
echo sum(), "\n"; //0

//命名参数与位置参数可同时使用，此时命名参数必须在位置参数之后
function f3($name, $age = 20, $sex = '男')
{
    echo "$name, $age, $sex\n";
}

f3('杨柳依依', sex: '女'); //杨柳依依, 20, 女
f3(sex: '女', name: '杨柳依依', age: 18); //杨柳依依, 18, 女

